﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Mail;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using VipCo.Data;
using VipCo.Entities;

public partial class BuyCard : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            tbHoten.Focus();
            BindCatalog.BindLoaiThe(ddlLoaithe);
        }
    }

    /// <summary>
    /// Xu ly su kien click Mua the
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btMuathe_Click(object sender, EventArgs e)
    {
        bool updateStatus = false;
        try
        {
            MuaThe entTheHoiVien = new MuaThe();
            entTheHoiVien.HoTen = Common.StandardString(tbHoten.Text);
            entTheHoiVien.DiaChi = Common.StandardString(tbDiachi.Text);
            entTheHoiVien.Phone = Common.StandardString(tbDidong.Text);
            entTheHoiVien.Email = Common.StandardString(tbEmail.Text);
            entTheHoiVien.IdLoaiThe = Convert.ToInt32(ddlLoaithe.SelectedValue);
            entTheHoiVien.SoCmnd = Common.StandardString(tbSocmnd.Text);

            DateTime myDate = DateTime.Now;
            DateTime dt1 = DateTime.ParseExact(Common.StandardString(tbNgaysinh.Text), "dd/MM/yyyy", null);

            if (dt1 >= myDate)
            {
                lbNgaysinh.Text = "Ngày sinh không thể lớn hơn ngày hiện tại";
                return;
            }

            else
                entTheHoiVien.NgaySinh = DateTime.ParseExact(Common.StandardString(tbNgaysinh.Text), "dd/MM/yyyy", null);

            entTheHoiVien.NgayCapNhat = Common.GetServerDateTime();
            entTheHoiVien.TrangThai = false;

            if (entTheHoiVien.Id == 0)
            {
                entTheHoiVien.Id = 0;
                updateStatus = DataRepository.MuaTheProvider.Insert(entTheHoiVien);                
            }
            else
            {
                updateStatus = DataRepository.MuaTheProvider.Update(entTheHoiVien);
            }
            if (updateStatus)
            {
                // Gui mail
                guiMail(entTheHoiVien);
                //
                Response.Redirect("~/BuySuccess.aspx");
            }
            else
                WebMessage.Show("Cập nhật thất bại!");
        }
        catch (Exception ex)
        {
            Common.WriteLog("BuyCard.aspx.cs", "cmdSave_Click", ex.ToString());
            WebMessage.Show("Cập nhật thất bại!");
        }
    }
    #region Gui mail

    private void guiMail(MuaThe objMuathe)
    {
        // Thuc hien lay mail gui co Status = 1;
        int totalRows = 0;
        TList<CauHinhMail> TList_CauHinhMail = DataRepository.CauHinhMailProvider.GetPaged("TrangThai = 1", "Id DESC", 0, 1, out totalRows);


        if (TList_CauHinhMail.Count > 0)
        {
            MailMessage objEmail = new MailMessage();
            objEmail.From = new MailAddress(TList_CauHinhMail[0].Email);

            // Dia chi Email duoc gui den, lay Info
            TList<CauHinhMail> tlistInfo = DataRepository.CauHinhMailProvider.GetPaged("Hoten like N'" + "Info" + "'",
                                                                                       "Id DESC", 0, 1, out totalRows);
            var addresses = tlistInfo[0].Email;
            if (addresses != null) objEmail.To.Add(addresses);


            // Noi dung thong tin ve email
            objEmail.Subject = "[Onlycard] Đăng ký mua thẻ "; // Tiêu đề bài viết
            objEmail.SubjectEncoding = Encoding.UTF8;
            objEmail.BodyEncoding = Encoding.UTF8; //Chuyển bảng mã
            objEmail.Body = NoiDungMail(objMuathe); //Chưa nội dung mail
            objEmail.IsBodyHtml = true;
            SmtpClient smtp = null;
            if (TList_CauHinhMail[0].TrangThai == true)
            {
                smtp = new SmtpClient() { Host = TList_CauHinhMail[0].Host, Port = TList_CauHinhMail[0].Port, EnableSsl = true, Credentials = new System.Net.NetworkCredential(TList_CauHinhMail[0].Email, Common.Decrypt(TList_CauHinhMail[0].Matkhau)) };
            }
            //else
            //{
            //    smtp = new SmtpClient() { Host = "smtp.live.com", Port = 587, EnableSsl = true, Credentials = new System.Net.NetworkCredential(TList_CauHinhMail[0].TenMail, TList_CauHinhMail[0].MatKhau) };
            //}
            if (smtp != null) smtp.Send(objEmail);
            //WebMessage.Show("Chúng tôi đã gửi nội dung bài viết đến Thư điện tử cho bạn!");
            //Page.ClientScript.RegisterStartupScript(this.GetType(), "redirectMe", "alert('Chúng tôi đã gửi nội dung bài viết đến Thư điện tử cho bạn.\\n!')");
            //gọi đoạn javascrip để đóng cửa sổ lại

        }
    }

    private string NoiDungMail(MuaThe objMuathe)
    {
        //
        StringBuilder NoiDung = new StringBuilder();
        // Email template
        NoiDung.Append("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional //EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">");
        NoiDung.Append("<html>");
        NoiDung.Append("<head>");
        NoiDung.Append("<head>");
        NoiDung.Append("<style type=\"text/css\">");
        NoiDung.Append("*{margin: 0; padding: 0;}");
        NoiDung.Append("body{font-size: 12px; font-family: Tahoma, Arial;}");
        NoiDung.Append(".container{margin: 0 auto; width: 600px; height: 400px; background-color: #ffffff; padding: 1px 5px;}");
        NoiDung.Append(".social{width: 100%; height: 20px; background-color: #BB0009;}");
        NoiDung.Append("a{color: #fff; font-size: 11px; text-decoration: none;}");
        NoiDung.Append(".logo{height: 80px; width: 100%;}");
        NoiDung.Append(".title{height: 50px; width: 100%;}");
        NoiDung.Append(".content{height: auto; width: 100%; margin: 10px 0px;}");
        NoiDung.Append(".footer{height: 50px; width: 100%; background-color: #BB0009; padding: 10px 2px; color: #ffffff;}");
        NoiDung.Append("span.indam{font-weight: bold; padding: 3px 0px;}");
        NoiDung.Append("</style>");
        NoiDung.Append("</head>");

        NoiDung.Append("<body>");
        NoiDung.Append("<div class=\"container\">");
        NoiDung.Append("<div class=\"social\">");
        NoiDung.Append("<img src=\"https://img.createsend1.com/img/templatebuilder/like-glyph.png\">");
        NoiDung.Append("<a href=\"http://www.facebook.com/diemdendanag\">http://www.facebook.com/diemdendanag</a>");
        NoiDung.Append("</div>");
        NoiDung.Append("<div class=\"logo\">");
        NoiDung.Append("<img src=\"http://onlycard.com.vn/Images/mualaco.png\" width=\"200px\" height=\"50px\">");
        NoiDung.Append("</div>");
        NoiDung.Append("<div class=\"title\"><h1>Đăng ký mua thẻ Onlycard</h1></div>");
        NoiDung.Append("<div class=\"content\">");
        NoiDung.Append("<p><span class=\"indam\">Họ tên khách hàng :</span> <span>" + objMuathe.HoTen + "</span></p>");
        NoiDung.Append("<p><span class=\"indam\">Địa chỉ email khách hàng :</span> <span>" + objMuathe.Email + "</span></p>");
        NoiDung.Append("<p><span class=\"indam\">Địa chỉ :</span> <span>" + objMuathe.DiaChi + "</span></p>");
        NoiDung.Append("<p><span class=\"indam\">Số CMND :</span> <span>" + objMuathe.SoCmnd + "</span></p>");
        NoiDung.Append("<p><span class=\"indam\">Phone :</span> <span>" + objMuathe.Phone + "</span></p>");
        NoiDung.Append("<p><span class=\"indam\">Ngày sinh :</span> <span>" + objMuathe.NgaySinh + "</span></p>");
        NoiDung.Append("<p><span class=\"indam\">Thời gian đăng ký :</span> <span>" + objMuathe.NgayCapNhat + "</span></p>");
        NoiDung.Append("<p><span class=\"indam\">Loại thẻ muốn mua :</span> <span>" + GetTenLoaiThe(objMuathe.IdLoaiThe) + "</span></p>");        
        NoiDung.Append("</div>");
        NoiDung.Append("<div class=\"footer\">");
        NoiDung.Append("<span><b>CÔNG TY TNHH TMĐT VIỄN QUANG VINA<b></span><br>");
        NoiDung.Append("<span>Địa chỉ: 27 Hòa An 9, Phường Hòa AN, Quận Cẩm Lệ, TP Đà Nẵng.</span><br>");
        NoiDung.Append("<span>Website: www.onlycard.com.vn - Email: info@onlycard.com.vn</span><br>");
        NoiDung.Append("</div>");
        NoiDung.Append("</div>");
        NoiDung.Append("</body>");

        NoiDung.Append("</html>");
        return NoiDung.ToString();
    }

    #endregion
    public string GetTenLoaiThe(int idLoaithe)
    {
        var entLoaithe = DataRepository.LoaiTheProvider.GetById(idLoaithe);
        if (entLoaithe != null) return entLoaithe.TenLoaiThe;
        return "Chưa xác định";
    }
}